home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol025 / lunar.bas < prev    next >
Encoding:
BASIC Source File  |  1987-01-11  |  2.0 KB  |  50 lines

  1. 10 PRINT TAB(33);"LUNAR"
  2. 20 PRINT:PRINT:PRINT
  3. 30 PRINT "this is a computer simulation of an apollo lunar"
  4. 40 PRINT "landing capsule.":PRINT:PRINT
  5. 50 PRINT "the on-board computer has failed (it was made by IBM)"
  6. 60 PRINT "so you will have to land the capsule manually."
  7. 70 PRINT:PRINT "set burn rate of retro rockets to any value between"
  8. 80 PRINT "0 (free fall) and 200 (maximum burn) pounds per second."
  9. 90 PRINT "set new burn rate every 10 seconds.":PRINT
  10. 100 PRINT "capsule weight 32,500 lbs: fuel weight 16,500 lbs."
  11. 110 PRINT:PRINT:PRINT:PRINT "good luck"
  12. 120 L=0
  13. 130 PRINT:PRINT "sec","mi + ft","mph","lb fuel","burn rate":PRINT
  14. 140 A=120:V=1:M=33000!:N=16500:G=.001:Z=1.8
  15. 150 PRINT L,INT(A);INT(5280*(A-INT(A))),3600*V,M-N,:INPUT K:T=10
  16. 160 IF M-N<.001 THEN 240
  17. 170 IF T<.001 THEN 150
  18. 180 S=T: IF M>N+S*K THEN 200
  19. 190 S=(M-N)/K
  20. 200 GOSUB 420: IF I<=0 THEN 340
  21. 210 IF V<=0 THEN 230
  22. 220 IF J<0 THEN 370
  23. 230 GOSUB 330: GOTO 160
  24. 240 PRINT "fuel out at";L;"seconds":S=(-V+SQR(V*V+2*A*G))/G
  25. 250 V=V+G*S:L=L+S
  26. 260 W=3600*V:PRINT "on moon at";L;"seconds - impact velocity";W;"mph"
  27. 270 IF W<=1.2 THEN PRINT "perfect landing!": GOTO 440
  28. 280 IF W<=10 THEN PRINT "good landing (could be better)":GOTO 440
  29. 282 IF W>60 THEN 300
  30. 284 PRINT "craft damage... you're stranded here until a rescue"
  31. 286 PRINT "party arrives.  hope you have enough oxygen!"
  32. 288 GOTO 440
  33. 290 IF W>60 THEN 300
  34. 300 PRINT "sorry ther were no survivors. you blew it!"
  35. 310 PRINT "in fact you blasted a new lunar crater";W*.277;"feet deep!"
  36. 320 GOTO 440
  37. 330 L=L+S: T=T-S: M=M-S*K: A=I: V=J: RETURN
  38. 340 IF S<5.000001E-03 THEN 260
  39. 350 D=V+SQR(V*V+2*A*(G-Z*K/M)):S=2*A/D
  40. 360 GOSUB 420: GOSUB 330:GOSUB 340
  41. 370 W=(1-M*G/(Z*K))/2: S=M*V/(Z*K*(W+SQR(W+SQR(W*W+V/Z))))+.05:GOSUB 420
  42. 380 IF I<=0 THEN 340
  43. 390 GOSUB 330: IF J>0 THEN 160
  44. 400 IF V>0 THEN 370
  45. 410 GOTO 160
  46. 420 Q=S*K/M: J=V+G*S+Z*(-Q-Q*Q/2-Q^3/3-Q^4/4-Q^5/5)
  47. 430 I=A-G*S*S/2-V*S+Z*S*(Q/2+Q^2/6+Q^3/12+Q^4/20+Q^5/30):RETURN
  48. 440 PRINT:PRINT:PRINT:PRINT "try again??":GOTO 70
  49. /4-Q^5/5)
  50.